Early computer systems were controlled by batch operating systems. These systems had limited interaction with users of the system. An operator needed to load the job to be run and then send the output to a printer. With the advent of time-sharing operating systems, such as the IBM System 370, interactive computing became the norm. Time-sharing operating systems allowed many users to use the computer's resources simultaneously, so that all users appeared to have their own computer system. All users had their own terminal, which was connected to the central computer system. This terminal typically consisted of a display and a keyboard. To the user, this terminal appeared to be an interactive computer system in its own right.
With the advent of computer systems that allowed truly interactive computer applications came a proliferation of user interfaces. Some of these interfaces were command driven, others where menu driven, but they all allowed the user to work on only one task or application from a given terminal at a time.
Today, the state-of-the-art for computer systems and user interfaces has advanced beyond the single-task interface. Inexpensive, personal computers and workstations with powerful, graphics processors and multi-tasking, operating systems have changed the way users interact with computer systems. With these operating systems, the user can simultaneously work on many tasks at once, each task being confined to its own display panel, called a window. This interface allows the presentation of multiple windows in potentially-overlapping relationships on a display screen. The user can thus retain a window on the screen while temporarily superimposing a further window entirely or partially overlapping the retained window. This enables users to divert their attention from a first window to one or more secondary windows for assistance and/or reference, so that overall user interaction can be improved. There can be many windows with active applications running at once. As the number of open windows becomes large and the screen becomes cluttered, it becomes more and more difficult for the user to find the desired window because it may be overlaid by several other windows.
In order to find the desired window, current systems allow the user to reduce overlying windows to icons (symbols that represent the windows) by clicking the mouse button while the mouse cursor is positioned on a minimize button. Reducing a window to an icon is sometimes called “minimization”. This method suffers from the disadvantage that when the window is reduced to an icon, the user cannot see the window contents. Many times when an application in a window is running, the user might wish to see the window contents. By seeing all or a portion of the window contents, the user has a better chance of determining when the application is complete or needs attention.
In an attempt to address these problems of minimization, some operating systems create a “task bar”, which contains icons for all running tasks. The task bar is always present, regardless of the amount of space that the windows take up on the remaining area of the desktop. The task bar contains icons for all running tasks, regardless of whether the tasks are minimized, maximized, or take up some portion of the desktop. When the user selects an icon in the task bar, the operating system brings that task to the foreground of the desktop. The task bar suffers from the problem that it is an all-or-nothing solution; that is, in order to determine the contents of the window, the user must bring the entire window to the foreground. Further, the user might not be able to determine which is the desired window by examining the icons in the task bar, and thus may repeatedly need to bring different windows to the foreground in order to find the desired window.
Another method of finding the desired window is for the user to operate the mouse pointer to “grab” overlying windows, “drag” them, and “drop” them to the side or partially off the screen. In this method, the user positions the mouse pointer in some portion of the window (such as the title bar) and clicks and holds a mouse button (the grabbing action). The window then moves with the mouse pointer (the dragging action). When the window is positioned in the desired area, the user releases the mouse button (the dropping action). Grabbing, dragging, and dropping take too much of the user's time and divert the user's attention from the primary work inside the desired window.
For the foregoing reasons, there is a need for a windowing interface that permits the user to quickly and easily find the window of interest amidst the clutter of the desktop.